﻿using System;
using DAL;
using VO;
using COMMON;

namespace BLL
{
    public class AtendenteBLL
    {

        #region Insert
        public static Retorno<Atendente> Insert(Atendente obj)
        {
            var objReturn = new Retorno<Atendente>();
            try
            {
                //Insere Atendente
                new AtendenteDAL().Insert(obj);
                objReturn.Error = Enumerator.Error.Success;
                objReturn.Message = "OK";
            }
            catch (Exception ex)
            {
                objReturn.Error = Enumerator.Error.Failed;
                objReturn.Message = ex.Message;
            }
            return objReturn;
        }
        #endregion

        #region Update
        public static Retorno<Atendente> Update(Atendente obj)
        {
            var objReturn = new Retorno<Atendente>();
            try
            {
                //Altera Atendente
                new AtendenteDAL().Update(obj);
                objReturn.Error = Enumerator.Error.Success;
                objReturn.Message = "OK";
            }
            catch (Exception ex)
            {
                objReturn.Error = Enumerator.Error.Failed;
                objReturn.Message = ex.Message;
            }
            return objReturn;
        }
        #endregion

        #region UpdateStatus
        public static Retorno<Atendente> UpdateStatus(Atendente obj)
        {
            var objReturn = new Retorno<Atendente>();
            try
            {
                //Altera Status
                new AtendenteDAL().UpdateStatus(obj);
                objReturn.Error = Enumerator.Error.Success;
                objReturn.Message = "OK";
            }
            catch (Exception ex)
            {
                objReturn.Error = Enumerator.Error.Failed;
                objReturn.Message = ex.Message;
            }
            return objReturn;
        }
        #endregion

        #region Delete
        public static Retorno<Atendente> Delete(int idAtendente)
        {
            var objReturn = new Retorno<Atendente>();
            try
            {
                //Deleta Atendente
                new AtendenteDAL().Delete(idAtendente);
                objReturn.Error = Enumerator.Error.Success;
                objReturn.Message = "OK";
            }
            catch (Exception ex)
            {
                objReturn.Error = Enumerator.Error.Failed;
                objReturn.Message = ex.Message;
            }
            return objReturn;
        }
        #endregion

        #region Select
        public static Retorno<Atendente> Select(int idAtendente = 0)
        {
            var objReturn = new Retorno<Atendente>();
            try
            {
                //Lista Atendente (somente ativo)
                objReturn.List = new AtendenteDAL().Select(idAtendente);
                objReturn.Error = Enumerator.Error.Success;
                objReturn.Message = "OK";
            }
            catch (Exception ex)
            {
                objReturn.Error = Enumerator.Error.Failed;
                objReturn.Message = ex.Message;
            }
            return objReturn;
        }
        #endregion

        #region SelectAll
        public static Retorno<Atendente> SelectAll(int idAtendente = 0)
        {
            var objReturn = new Retorno<Atendente>();
            try
            {
                //Lista Atendente
                objReturn.List = new AtendenteDAL().SelectAll(idAtendente);
                objReturn.Error = Enumerator.Error.Success;
                objReturn.Message = "OK";
            }
            catch (Exception ex)
            {
                objReturn.Error = Enumerator.Error.Failed;
                objReturn.Message = ex.Message;
            }
            return objReturn;
        }
        #endregion

    }
}